
#ifndef LLHWC_PHY_SEQUENCES_107_H_
#define LLHWC_PHY_SEQUENCES_107_H_

#include <stdint.h>

#ifdef IP_107
extern uint32_t pre_tx_interpacket_250K_size;
extern const uint32_t pre_tx_interpacket_250K[];
extern uint32_t pre_rx_interpacket_250K_size;
extern const uint32_t pre_rx_interpacket_250K[];
#endif

extern const uint32_t init_slp[];
extern const uint32_t init_stdby[];
extern const uint32_t init_slp_to_stdby[];
extern const uint32_t reset[];

//extern const uint32_t init_default_agc_unlock_cfg[];
extern const uint32_t phy_init[];
#ifdef IP_108
extern const uint32_t init_force_gain_0x1d_cfg[];
extern const uint32_t init_agc_lock_cfg[];
extern const uint32_t init_agc_lna_off_cfg[];
extern const uint32_t init_force_gain_0x13_cfg[];
#endif

//tx
extern const uint32_t pre_tx_interpacket[];
extern const uint32_t pre_tx_interpacket_LR[];
extern const uint32_t pre_tx_interpacket_zigbee[];
extern const uint32_t pre_tx_interpacket_2M[];
#ifdef IP_108
extern const uint32_t post_tx_interpacket[];
#elif defined(IP_107)
extern const uint32_t post_tx_interpacket[];
#endif
extern const uint32_t post_tx_interpacket2[];

//rx
extern const uint32_t pre_rx_interpacket[];
extern const uint32_t pre_rx_interpacket_LR[];
extern const uint32_t pre_rx_interpacket_zigbee[];
extern const uint32_t pre_rx_interpacket_2M[];
extern const uint32_t post_rx_interpacket[];

extern const uint32_t pre_evnt[];
extern const uint32_t post_evnt[];

extern       uint32_t channel_init[];

extern const uint32_t init_constant_tone[];
extern const uint32_t init_pll_bw_cal[];

extern const uint32_t init_slp_size;
extern const uint32_t init_stdby_size;
extern const uint32_t init_slp_to_stdby_size;
extern const uint32_t reset_size;

//extern const uint32_t init_default_agc_unlock_cfg_size;
extern const uint32_t init_force_gain_0x1d_cfg_size;
extern const uint32_t init_agc_lock_cfg_size;
extern const uint32_t init_agc_lna_off_cfg_size;
extern const uint32_t init_force_gain_0x13_cfg_size;


extern uint32_t phy_init_size;

//TX size
extern uint32_t pre_tx_interpacket_size;
extern uint32_t pre_tx_interpacket_LR_size;
extern uint32_t pre_tx_interpacket_zigbee_size;
extern uint32_t pre_tx_interpacket_2M_size;
extern uint32_t post_tx_interpacket_size;

//RX size
extern uint32_t pre_rx_interpacket_size;
extern uint32_t pre_rx_interpacket_LR_size;
extern uint32_t pre_rx_interpacket_zigbee_size;
extern uint32_t pre_rx_interpacket_2M_size;
extern uint32_t post_rx_interpacket_size;

//Event
extern uint32_t pre_evnt_size;
extern uint32_t post_evnt_size;

//CTE
extern uint32_t init_constant_tone_size;


extern const uint32_t channel_init_size;
extern const uint32_t init_pll_bw_cal_size;

extern const uint8_t phy_ch_cfg_reg;
extern const uint8_t tx_pwr_cfg_reg;
extern const uint8_t rssi_out_phy_reg_addrs;

extern const uint8_t sm_tx_latency_1m_value;
extern const uint8_t sm_rx_latency_1m_value;
extern const uint8_t sm_tx_latency_2m_value;
extern const uint8_t sm_rx_latency_2m_value;
extern const uint8_t sm_tx_latency_coded_value;
extern const uint8_t sm_rx_latency_coded_value;
extern const uint8_t sm_tx_latency_zigbee_value;
extern const uint8_t sm_rx_latency_zigbee_value;

extern const uint8_t adv_chnls_swtch_time;
extern const uint8_t phy_version;

uint8_t phy_time_cfg(uint8_t phy, uint8_t tx1rx0);


#endif /* LLHWC_PHY_SEQUENCES_107_H_ */
